package com.junzhiit.nengji.shop.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.junzhiit.nengji.bo.ShopClientBO;
import com.junzhiit.nengji.model.ShopClient;
import com.junzhiit.nengji.shop.web.vo.PurchaseMemberCardVO;
import com.junzhiit.nengji.shop.web.vo.RechargeMemberCardVO;
import com.junzhiit.nengji.shop.web.vo.ResultVO;

public interface MemberCardService {
	
	/**
	 * TODO 根据用户ID查询用户所有的会员卡信息
	 * @author Dlam
	 * @time 2018年8月2日 下午4:12:56
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAll(ShopClientBO shopClientBO);
	
	/**
	 * TODO 根据店铺Id数组查询用户对应的会员卡
	 * @author Dlam
	 * @time 2018年8月9日 下午2:40:07
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAllByShopIds(List<String> csIds,String userId);
	
	/**
	 * 
	 * TODO 根据店铺ID取得店铺的会员卡信息
	 * 
	 * @author Dlam
	 * @time 2018年8月2日 下午16:09:43
	 * @return ResultVO
	 *
	 */
	public ResultVO getShopMemberCard(String csId);
	
	/**
	 * TODO 用户领取会员卡(无门槛普通领取)
	 * @author Dlam
	 * @time 2018年8月2日 下午4:10:17
	 * @return ResultVO
	 * 
	 */
	public ResultVO receive(String userId,String csId,String memberCardId);
	
	/**
	 * TODO 用户领取会员卡(根据消费笔数,或者消费金额)
	 * 
	 * 可处理普通会员卡过期，购买会员卡过期，按规则发放会员卡过起期
	 * 升级/降级 按规则发放会员卡
	 * 
	 * @author Dlam
	 * @time 2018年8月2日 下午4:10:17
	 * @return ResultVO
	 * 
	 */
	public ShopClient receiveByShop(String userId,String csId,Integer isChain);
	
	/**
	 * TODO 购买会员卡(未完成，勿用)
	 * @author Dlam
	 * @time 2018年8月9日 上午9:02:11
	 * @return ResultVO
	 * 
	 */
	public ResultVO purchaseMemberCard(HttpServletRequest request,PurchaseMemberCardVO vo);
	
	/**
	 * TODO 充值会员卡
	 * @author Dlam
	 * @time 2018年8月10日 上午9:37:21
	 * @return ResultVO
	 * 
	 */
	public ResultVO rechargeMemberCard(HttpServletRequest request,RechargeMemberCardVO cardVO);
	
	/**
	 * TODO 会员卡权益详情
	 * @author Dlam
	 * @time 2018年8月14日 下午2:24:18
	 * @return ResultVO
	 * 
	 */
	public ResultVO details(String memberCardId);
	
	/**
	 * TODO  获取所有的充值规则
	 * @author Dlam
	 * @time 2018年8月14日 下午8:15:38
	 * @return ResultVO
	 * 
	 */
	public ResultVO chargeRule(String csId,String userId);
	
	/**
	 * TODO 会员账户信息
	 * @author Dlam
	 * @time 2018年8月21日 上午10:06:09
	 * @return ResultVO
	 * 
	 */
	public ResultVO findClientByUserId(String csId,String userId);
}
